home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 48 / Amiga Format CD48 (1999-12-13)(Future Publishing)(GB)(Track 1 of 2)[!][issue 2000-01].iso / -serious- / programming / c / stormamiga_lib / include / string_stormamiga.h < prev    next >
C/C++ Source or Header  |  1999-11-01  |  3KB  |  174 lines

  1. #ifndef  STRING_STORMAMIGA_H
  2. #define  STRING_STORMAMIGA_H
  3.  
  4. /*
  5. **    $VER: string_stormamiga.h 1.2 (18.09.98)
  6. **             Includes Release 45.00
  7. **
  8. **     Copyright © 1996/99 by CyberdyneSystems
  9. **
  10. **            written by Matthias Henze
  11. **               All Rights Reserved
  12. */
  13.  
  14. #ifndef  STORMAMIGA_H
  15.   #include <stormamiga.h>
  16. #endif
  17. #ifndef  _INCLUDE_STRING_H
  18.   #include <string.h>
  19. #endif
  20.  
  21. #ifdef __cplusplus
  22.   extern "C" {
  23. #endif
  24.  
  25. /*----- ANSI C-functions -----*/
  26.  
  27. int     strcoll     (cchar *, cchar *);
  28. size_t  strxfrm     (char *, cchar *, size_t);
  29.  
  30. /*----- UNIX-functions -----*/
  31.  
  32. int     bcmp        (cvoid *, cvoid *, size_t);
  33. void    bcopy       (cvoid *, void *, size_t);
  34. void    bzero       (void *, size_t);
  35. int     ffs         (int);
  36. int     strnicmp    (cchar *, cchar *, size_t);
  37. int     strcasecmp  (cchar *, cchar *);
  38. int     strncasecmp (cchar *, cchar *, size_t);
  39. char    *index      (cchar *, int);
  40. char    *rindex     (cchar *, int);
  41. char    *strdup     (cchar *);
  42. char    *strsep     (char **, cchar *);
  43. char    *strlower   (char *);
  44. char    *strupper   (char *);
  45. char    *stpchr     (cchar *, int);
  46. char    *stpcpy     (char *, cchar *);
  47. void    *memccpy    (void *, cvoid *, int, size_t);
  48. void    swab        (cvoid *, void *, size_t);
  49.  
  50. /*----- DICE-functions -----*/
  51.  
  52. void    strins      (char *, cchar *);
  53. int     strbpl      (char **, int, cchar *);
  54.  
  55. /*----- stormamiga-functions -----*/
  56.  
  57. #ifdef STORMAMIGA_DEUTSCH
  58.   #define stricmp     stricmp_d
  59.   #define strnicmp    strnicmp_d
  60.   #define strcasecmp  strcasecmp_d
  61.   #define strncasecmp strncasecmp_d
  62.   #define strlwr      strlwr_d
  63.   #define strupr      strupr_d
  64.   #define strlower    strlower_d
  65.   #define strupper    strupper_d
  66. #endif
  67.  
  68. int   stricmp_d       (cchar *, cchar *);
  69. int   strnicmp_d      (cchar *, cchar *, size_t);
  70. int   strcasecmp_d    (cchar *, cchar *);
  71. int   strncasecmp_d   (cchar *, cchar *, size_t);
  72. char  *strlwr_d       (char *);
  73. char  *strlower_d     (char *);
  74. char  *strupr_d       (char *);
  75. char  *strupper_d     (char *);
  76. char  *strncpyn       (char *, cchar *, size_t);
  77.  
  78. #ifdef __cplusplus
  79.   }
  80. #endif
  81.  
  82. #ifdef STORMAMIGA_INLINE
  83.  
  84. /*----- ANSI C-functions -----*/
  85.  
  86. __inline void *memcpy   (void *d, cvoid *s, size_t n)
  87. {
  88.   void *r = d;
  89.   while (n)
  90.   {
  91.     *(((uchar*) d)++) = *(((uchar*) s)++);
  92.     n--;
  93.   }
  94.   return r;
  95. }
  96.  
  97. __inline void *memmove  (void *d, cvoid *s, size_t n)
  98. {
  99.  void *r = d;
  100.  if (n)
  101.  {
  102.   if ((uchar *) d < (uchar *) s)
  103.   {
  104.     do
  105.     {
  106.       *(((uchar *) d)++) = *(((uchar *) s)++);
  107.     }
  108.     while (--n);
  109.   };
  110.   else
  111.   {
  112.     (uchar *) d += n;
  113.     (uchar *) s += n;
  114.     do
  115.     {
  116.       *(--((uchar *) d)) = *(--((uchar *) s));
  117.     }
  118.     while (--n);
  119.   };
  120.  }
  121.  return r;
  122. }
  123.  
  124. __inline void *memset   (void *d, int c, size_t n)
  125. {
  126.   void *r = d;
  127.   while (n)
  128.   {
  129.     *(((uchar *) d)++) = c;
  130.     n--;
  131.   }
  132.   return r;
  133. }
  134.  
  135. __inline void *memchr    (cvoid *s, int c, size_t n)
  136. {
  137.   while (n)
  138.   {
  139.    if (*(((uchar *) s)++) == (uchar) c)
  140.      return (uchar *) s - 1;
  141.    n--;
  142.   };
  143.   return NULL;
  144. }
  145.  
  146. __inline int memcmp      (cvoid *m1, cvoid *m2, size_t n)
  147. {
  148.  int r = 0;
  149.  char a, b;
  150.  if (n)
  151.  {
  152.    while ((a = *(((uchar *) m1)++)) == (b = *(((uchar *) m2)++)) && --n)
  153.     ;
  154.    r = a - b;
  155.  }
  156.  return r;
  157. }
  158.  
  159. /*----- UNIX-functions -----*/
  160.  
  161. #define bcmp  memcmp
  162.  
  163. __inline void bzero      (void *d,  size_t n)
  164. {
  165.   while (n)
  166.   {
  167.     *(((uchar *) d)++) = 0;
  168.     n--;
  169.   }
  170. }
  171. #endif  /* STORMAMIGA_INLINE */
  172.  
  173. #endif  /* STRING_STORMAMIGA_H */
  174.